Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Allow logging individual components directly (Impl AsComponents for all ObjectKind::Component) #7756

Merged
merged 4 commits into from
Oct 18, 2024

Conversation

oxkitsune
Copy link
Contributor

@oxkitsune oxkitsune commented Oct 15, 2024

What

This implements AsComponents for all Components, which makes the rust api slightly more ergonomic and makes this possible:

rec.log_static("my_points", &rerun::Color::from_rgb(128, 128, 128))?;

Checklist

  • I have read and agree to Contributor Guide and the Code of Conduct
  • I've included a screenshot or gif (if applicable)
  • I have tested the web demo (if applicable):
  • The PR title and labels are set such as to maximize their usefulness for the next release's CHANGELOG
  • If applicable, add a new check to the release checklist!
  • If have noted any breaking changes to the log API in CHANGELOG.md and the migration guide

To run all checks from main, comment on the PR with @rerun-bot full-check.

@teh-cmc
Copy link
Member

teh-cmc commented Oct 16, 2024

Nice!

I wonder if we can avoid generating actual code at all here though: have you tried looking into something along the lines of impl<C: Component> AsComponents for C?

@oxkitsune
Copy link
Contributor Author

I wonder if we can avoid generating actual code at all here though: have you tried looking into something along the lines of impl<C: Component> AsComponents for C?

Yea that is possible! I originally thought of this, but then got excited by the codegen and wanted to mess with that haha.
I'm not sure where that trait impl belongs, but I've just put it right below the definition of AsComponents

@Wumpf
Copy link
Member

Wumpf commented Oct 18, 2024

oh my. Just tried it. So easy and so much better with this o_o
took the liberty to push in a small doc update related to this.

Strangely, I wasn't able to find any snippet or example that profits from this directly. Looks like we always dogged this in those so far :/. Or maybe I'm missing something.

@Wumpf Wumpf marked this pull request as ready for review October 18, 2024 09:08
@Wumpf Wumpf changed the title Impl AsComponents for all ObjectKind::Component Allow logging individual components directly (Impl AsComponents for all ObjectKind::Component) Oct 18, 2024
@Wumpf
Copy link
Member

Wumpf commented Oct 18, 2024

the python ci failure can be ignored, that's a known issue with non-maintainer-ci. But the Rust issues are proper compile errors in the tests

@oxkitsune
Copy link
Contributor Author

Oh damn, I'll take a look!

Our use case involves logging static colours for specific entities, to avoid having to log them each time and hopefully save some bandwidth 🤞

@Wumpf
Copy link
Member

Wumpf commented Oct 18, 2024

Note for posterity: As demonstrated by the test fixes this is "slightly" api breaking, so we better don't put this into a patch release

@Wumpf Wumpf merged commit 1cc6244 into rerun-io:main Oct 18, 2024
31 of 32 checks passed
teh-cmc added a commit that referenced this pull request Oct 19, 2024
commit 0033e78
Author: Clement Rey <[email protected]>
Date:   Sat Oct 19 18:12:39 2024 +0200

    Mimalloc 0.1.43+ (#7713)

    * Includes fix for
    purpleprotocol/mimalloc_rust#128
    * Potentially includes fix for #5875

commit d0ee720
Author: Clement Rey <[email protected]>
Date:   Sat Oct 19 18:07:38 2024 +0200

    Dataframe v2: reference docs (#7820)

    Add a reference page for the dataframe APIs.

    It's still very barebones at this point because #7819 makes it very
    difficult to write snippets for this.

    But it is literally infinitely better than what's there right now:
    nothing.

    - DNM: requires #7817
    - Closes #7828

commit c00a9f6
Author: Andreas Reich <[email protected]>
Date:   Sat Oct 19 17:59:15 2024 +0200

    Fix Rust dna sample writing to a temporary file (#7827)

commit 31d5943
Author: Clement Rey <[email protected]>
Date:   Sat Oct 19 17:58:48 2024 +0200

    Dataframe v2: examples (#7817)

    Full standalone Rust & Python examples for people who like to learn by
    jumping straight into the examples/ folder.

    Simpler snippets and the associated reference page are coming in a
    future PR.

commit 6d86699
Author: Kevin Reid <[email protected]>
Date:   Sat Oct 19 08:52:31 2024 -0700

    Update "Migration Guides" redirect to point to 0.19. (#7837)

    Update "Migration Guides" redirect to point to 0.19, so visitors see the
    0.19 guide first instead of the 0.18 guide.

commit 5b66659
Author: Jeremy Leibs <[email protected]>
Date:   Fri Oct 18 13:34:25 2024 -0400

    Remove py-tasks feature from py-docs env (#7835)

    ### What
    Fixes task ambiguity on the `py-build` task:
    ```
    ➜  pixi run py-build
    ? The task 'py-build' can be run in multiple environments.

    Please select an environment to run the task in: ›
    ❯ py
      py-docs
    ```

    ### Checklist
    * [x] I have read and agree to [Contributor
    Guide](https://github.com/rerun-io/rerun/blob/main/CONTRIBUTING.md) and
    the [Code of
    Conduct](https://github.com/rerun-io/rerun/blob/main/CODE_OF_CONDUCT.md)
    * [x] I've included a screenshot or gif (if applicable)
    * [x] I have tested the web demo (if applicable):
    * Using examples from latest `main` build:
    [rerun.io/viewer](https://rerun.io/viewer/pr/7835?manifest_url=https://app.rerun.io/version/main/examples_manifest.json)
    * Using full set of examples from `nightly` build:
    [rerun.io/viewer](https://rerun.io/viewer/pr/7835?manifest_url=https://app.rerun.io/version/nightly/examples_manifest.json)
    * [x] The PR title and labels are set such as to maximize their
    usefulness for the next release's CHANGELOG
    * [x] If applicable, add a new check to the [release
    checklist](https://github.com/rerun-io/rerun/blob/main/tests/python/release_checklist)!
    * [x] If have noted any breaking changes to the log API in
    `CHANGELOG.md` and the migration guide

    - [PR Build Summary](https://build.rerun.io/pr/7835)
    - [Recent benchmark results](https://build.rerun.io/graphs/crates.html)
    - [Wasm size tracking](https://build.rerun.io/graphs/sizes.html)

    To run all checks from `main`, comment on the PR with `@rerun-bot
    full-check`.

commit e568694
Author: rerun-bot <[email protected]>
Date:   Fri Oct 18 16:24:55 2024 +0200

    Release 0.19.0 (#7799)

    ### Next steps
    - Test the release
    - If this is an 'alpha' release, you can just merge the pull request.
    - Otherwise:
      - For any added commits, run the release workflow in 'rc' mode again
    - After testing, _ensure that this PR is mergeable to _, then run the
    release workflow in 'release' mode
    - Once the final release workflow finishes it will create a GitHub
    release for you. Then:
        - [x] Sanity check the build artifacts:
          - [x] pip install: does it install and run?
          - [x] cargo install of cli tool: does it install and run?
          - [x] C++ SDK zip: does it contain rerun_c for all platforms?
    - [x] Populate the release with the changelog and a nice header
    video/picture, check , then click .
    - [x] Update the [google colab
    notebooks](https://drive.google.com/drive/folders/0AC0q24MFKh3fUk9PVA)
    to install this version and re-execute the notebook.

    A few hours after the GitHub release is created,  will create a
    [conda feedstock
    PR](https://github.com/conda-forge/rerun-sdk-feedstock/pulls).
    Make sure Jeremy is on top of it!

    - [x] Tests
      - [x] Windows
      - [x] Linux
      - [x] MacOS

    ---------

    Co-authored-by: Jeremy Leibs <[email protected]>
    Co-authored-by: Emil Ernerfeldt <[email protected]>
    Co-authored-by: Clement Rey <[email protected]>

commit fb3980b
Author: Jeremy Leibs <[email protected]>
Date:   Fri Oct 18 07:33:15 2024 -0400

    Mike depends on setuptools (#7829)

    ### What
    Fixes regression from #7818

    ### Checklist
    * [x] I have read and agree to [Contributor
    Guide](https://github.com/rerun-io/rerun/blob/main/CONTRIBUTING.md) and
    the [Code of
    Conduct](https://github.com/rerun-io/rerun/blob/main/CODE_OF_CONDUCT.md)
    * [x] I've included a screenshot or gif (if applicable)
    * [x] I have tested the web demo (if applicable):
    * Using examples from latest `main` build:
    [rerun.io/viewer](https://rerun.io/viewer/pr/7829?manifest_url=https://app.rerun.io/version/main/examples_manifest.json)
    * Using full set of examples from `nightly` build:
    [rerun.io/viewer](https://rerun.io/viewer/pr/7829?manifest_url=https://app.rerun.io/version/nightly/examples_manifest.json)
    * [x] The PR title and labels are set such as to maximize their
    usefulness for the next release's CHANGELOG
    * [x] If applicable, add a new check to the [release
    checklist](https://github.com/rerun-io/rerun/blob/main/tests/python/release_checklist)!
    * [x] If have noted any breaking changes to the log API in
    `CHANGELOG.md` and the migration guide

    - [PR Build Summary](https://build.rerun.io/pr/7829)
    - [Recent benchmark results](https://build.rerun.io/graphs/crates.html)
    - [Wasm size tracking](https://build.rerun.io/graphs/sizes.html)

    To run all checks from `main`, comment on the PR with `@rerun-bot
    full-check`.

commit 1cc6244
Author: Gijs de Jong <[email protected]>
Date:   Fri Oct 18 13:28:20 2024 +0200

    Allow logging individual components directly (Impl `AsComponents` for all `ObjectKind::Component`) (#7756)

    <!--
    Open the PR up as a draft until you feel it is ready for a proper
    review.

    Do not make PR:s from your own `main` branch, as that makes it difficult
    for reviewers to add their own fixes.

    Add any improvements to the branch as new commits to make it easier for
    reviewers to follow the progress. All commits will be squashed to a
    single commit once the PR is merged into `main`.

    Make sure you mention any issues that this PR closes in the description,
    as well as any other related issues.

    To get an auto-generated PR description you can put "copilot:summary" or
    "copilot:walkthrough" anywhere.
    -->

    ### What

    This implements `AsComponents` for all `Component`s, which makes the
    rust api slightly more ergonomic and makes this possible:

    ```rs
    rec.log_static("my_points", &rerun::Color::from_rgb(128, 128, 128))?;
    ```

    ### Checklist
    * [x] I have read and agree to [Contributor
    Guide](https://github.com/rerun-io/rerun/blob/main/CONTRIBUTING.md) and
    the [Code of
    Conduct](https://github.com/rerun-io/rerun/blob/main/CODE_OF_CONDUCT.md)
    * [x] I've included a screenshot or gif (if applicable)
    * [x] I have tested the web demo (if applicable):
    * Using examples from latest `main` build:
    [rerun.io/viewer](https://rerun.io/viewer/pr/7756?manifest_url=https://app.rerun.io/version/main/examples_manifest.json)
    * Using full set of examples from `nightly` build:
    [rerun.io/viewer](https://rerun.io/viewer/pr/7756?manifest_url=https://app.rerun.io/version/nightly/examples_manifest.json)
    * [x] The PR title and labels are set such as to maximize their
    usefulness for the next release's CHANGELOG
    * [x] If applicable, add a new check to the [release
    checklist](https://github.com/rerun-io/rerun/blob/main/tests/python/release_checklist)!
    * [x] If have noted any breaking changes to the log API in
    `CHANGELOG.md` and the migration guide

    - [PR Build Summary](https://build.rerun.io/pr/7756)
    - [Recent benchmark results](https://build.rerun.io/graphs/crates.html)
    - [Wasm size tracking](https://build.rerun.io/graphs/sizes.html)

    To run all checks from `main`, comment on the PR with `@rerun-bot
    full-check`.

    ---------

    Co-authored-by: Andreas Reich <[email protected]>

commit 9773d8a
Author: Andreas Reich <[email protected]>
Date:   Fri Oct 18 12:09:11 2024 +0200

    Clarify viewport documentation and reference the type list for view classes (#7826)

    ### What

    * Fixes #3039

    ### Checklist
    * [x] I have read and agree to [Contributor
    Guide](https://github.com/rerun-io/rerun/blob/main/CONTRIBUTING.md) and
    the [Code of
    Conduct](https://github.com/rerun-io/rerun/blob/main/CODE_OF_CONDUCT.md)

    - [PR Build Summary](https://build.rerun.io/pr/7826)
    - [Recent benchmark results](https://build.rerun.io/graphs/crates.html)
    - [Wasm size tracking](https://build.rerun.io/graphs/sizes.html)

    To run all checks from `main`, comment on the PR with `@rerun-bot
    full-check`.

commit 587cfce
Author: Jeremy Leibs <[email protected]>
Date:   Fri Oct 18 04:34:37 2024 -0400

    Bring back the `py-docs` pixi environment (#7818)

    ### What
    - Resolves: #6060

    Pip installing things into pixi environments is always a recipe for
    pain.
    This is the way.

    Pushed this branch to `docs-latest` and confirmed it succeeded:
    - https://github.com/rerun-io/rerun/actions/runs/11390203895

    ### Checklist
    * [x] I have read and agree to [Contributor
    Guide](https://github.com/rerun-io/rerun/blob/main/CONTRIBUTING.md) and
    the [Code of
    Conduct](https://github.com/rerun-io/rerun/blob/main/CODE_OF_CONDUCT.md)
    * [x] I've included a screenshot or gif (if applicable)
    * [x] I have tested the web demo (if applicable):
    * Using examples from latest `main` build:
    [rerun.io/viewer](https://rerun.io/viewer/pr/7818?manifest_url=https://app.rerun.io/version/main/examples_manifest.json)
    * Using full set of examples from `nightly` build:
    [rerun.io/viewer](https://rerun.io/viewer/pr/7818?manifest_url=https://app.rerun.io/version/nightly/examples_manifest.json)
    * [x] The PR title and labels are set such as to maximize their
    usefulness for the next release's CHANGELOG
    * [x] If applicable, add a new check to the [release
    checklist](https://github.com/rerun-io/rerun/blob/main/tests/python/release_checklist)!
    * [x] If have noted any breaking changes to the log API in
    `CHANGELOG.md` and the migration guide

    - [PR Build Summary](https://build.rerun.io/pr/7818)
    - [Recent benchmark results](https://build.rerun.io/graphs/crates.html)
    - [Wasm size tracking](https://build.rerun.io/graphs/sizes.html)

    To run all checks from `main`, comment on the PR with `@rerun-bot
    full-check`.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants